<?php
/*
 * Encuestaconsumo DAL.
 * @Autor: Andrés Ubilla.
 */
class EncuestaconsumoDAL {
    //METODO PARA GRABAR ENCUESTACONSUMO.
    public static function grabar($oEncuestaconsumo){
        try{
            $arr = array(
                    "{#IDPACIENTE}" => $oEncuestaconsumo->getIdPaciente(),
                    "{#IDALIMENTO}" => $oEncuestaconsumo->getIdAlimento(),
                    "{#IDCONSUMO}" => $oEncuestaconsumo->getIdConsumo(),
                    "{#ALIMENTO}" => $oEncuestaconsumo->getAlimento(),
                    "{#CONSUMO}" => $oEncuestaconsumo->getConsumo(),
                    "{#COMENTARIO}" => $oEncuestaconsumo->getComentario()
            );
            $query = Util::getQuery($arr, EncuestaconsumoSQL::$GRABAR_ENCUESTACONSUMO);
            $arrDatos = Bd::exec($query);

            $id = Bd::$IDENTITY; //Retorno id insertado
            return $id;
            
        } catch (Excepcion $e){
            throw new Exception($e->getMessage());
        }
    }

    //METODO PARA EDITAR ENCUESTACONSUMO.
    public static function editar($oEncuestaconsumo){
        try{
            $arr = array(
                    "{#ID}" => $oEncuestaconsumo->getId(),
                    "{#IDPACIENTE}" => $oEncuestaconsumo->getIdPaciente(),
                    "{#IDALIMENTO}" => $oEncuestaconsumo->getIdAlimento(),
                    "{#IDCONSUMO}" => $oEncuestaconsumo->getIdConsumo(),
                    "{#COMENTARIO}" => $oEncuestaconsumo->getComentario()
            );
            $query = Util::getQuery($arr, EncuestaconsumoSQL::$EDITAR_ENCUESTACONSUMO);
            $arrDatos = Bd::exec($query);

        } catch (Excepcion $e){
            throw new Exception($e->getMessage());
        }
    }

    //METODO PARA LISTAR ENCUESTACONSUMO.
    public static function listar($oEncuestaconsumo){
        try{
            $arr = array(
                    "{#ID}" => $oEncuestaconsumo->getId(),
                    "{#IDPACIENTE}" => $oEncuestaconsumo->getIdPaciente(),
                    "{#IDALIMENTO}" => $oEncuestaconsumo->getIdAlimento(),
                    "{#IDCONSUMO}" => $oEncuestaconsumo->getIdConsumo(),
                    "{#COMENTARIO}" => $oEncuestaconsumo->getComentario()
            );
            $query = Util::getQuery($arr, EncuestaconsumoSQL::$LISTAR_ENCUESTACONSUMO);
            $arrDatos = Bd::exec($query);
            $arrEncuestaconsumo = array();

            if (count($arrDatos) > 0) {
                foreach ($arrDatos as $row) {
                    $oEncuestaconsumo = new Encuestaconsumo();

                    $oEncuestaconsumo->setId($row["id"]);
                    $oEncuestaconsumo->setIdPaciente($row["idPaciente"]);
                    $oEncuestaconsumo->setIdAlimento($row["idAlimento"]);
                    $oEncuestaconsumo->setIdConsumo($row["idConsumo"]);
                    $oEncuestaconsumo->setComentario($row["comentario"]);

                    $arrEncuestaconsumo[] = $oEncuestaconsumo;
                }
            }

            return $arrEncuestaconsumo;
            
        } catch (Excepcion $e){
            throw new Exception($e->getMessage());
        }
    }
    
    //METODO PARA LISTAR ENCUESTACONSUMO POR ID PACIENTE.
    public static function listarPorIdPaciente($idPaciente){
        try{
            $arr = array(
                    "{#IDPACIENTE}" => $idPaciente
                );
            $query = Util::getQuery($arr, EncuestaconsumoSQL::$LISTAR_ENCUESTACONSUMOPORIDPACIENTE);
            $arrDatos = Bd::exec($query);
            $arrEncuestaconsumo = array();

            if (count($arrDatos) > 0) {
                foreach ($arrDatos as $row) {
                    $oEncuestaconsumo = new Encuestaconsumo();

                    $oEncuestaconsumo->setId($row["id"]);
                    $oEncuestaconsumo->setIdPaciente($row["idPaciente"]);
                    $oEncuestaconsumo->setIdAlimento($row["idAlimento"]);
                    $oEncuestaconsumo->setIdConsumo($row["idConsumo"]);
                    $oEncuestaconsumo->setAlimento($row["alimento"]);                    
                    $oEncuestaconsumo->setConsumo($row["consumo"]);
                    $oEncuestaconsumo->setComentario($row["comentario"]);

                    $arrEncuestaconsumo[] = $oEncuestaconsumo;
                }
            }

            return $arrEncuestaconsumo;
            
        } catch (Excepcion $e){
            throw new Exception($e->getMessage());
        }
    }

    //METODO PARA OBTENER POR ID ENCUESTACONSUMO.
    public static function obtenerPorId($id){
        try{
            $arr = array(
                            "{#ID}" => $id
                    );
            $query = Util::getQuery($arr, EncuestaconsumoSQL::$OBTENER_ENCUESTACONSUMO_POR_ID);
            $arrDatos = Bd::exec($query);

            if (count($arrDatos) > 0) {
                $oEncuestaconsumo = new Encuestaconsumo();

                foreach ($arrDatos as $row) {
                    $oEncuestaconsumo->setId($row["id"]);
                    $oEncuestaconsumo->setIdPaciente($row["idPaciente"]);
                    $oEncuestaconsumo->setIdAlimento($row["idAlimento"]);
                    $oEncuestaconsumo->setIdConsumo($row["idConsumo"]);
                    $oEncuestaconsumo->setComentario($row["comentario"]);
                }
                return $oEncuestaconsumo;
            }
        } catch (Excepcion $e){
            throw new Exception($e->getMessage());
        }
    }

    //METODO PARA ELIMINAR ENCUESTACONSUMO.
    public static function eliminar($id){
        try{
            $arr = array("{#ID}" => $id);
            $query = Util::getQuery($arr, EncuestaconsumoSQL::$ELIMINAR_ENCUESTACONSUMO);
            $arrDatos = Bd::exec($query);

        } catch (Excepcion $e){
            throw new Exception($e->getMessage());
        }
    }
}
?>